home *** CD-ROM | disk | FTP | other *** search
Wrap
GW-BASIC | 1984-10-28 | 10.3 KB | 131 lines
10 ' BUDGET MANAGEMENT - REPORT 100 CLEAR (3600) : DEFINT I - N 110 M1 = 61 : M2 = 50 : M3 = 25 : M4 = 20 : M5 = M4 120 AD$ = CHR$ (25) : EL$ = CHR$ (30) : CU$ = CHR$ (27) : BL$ = CHR$ (29) 130 DIM A1%(M1),A2$(M1),A3#(M1),A4#(M1),A6%(M1) 140 DIM C1%(M2),C2%(M2),C3$(M2),C4(M2),C5%(M2),C6%(M2) 150 DIM E1%(M3),E2$(M3),E3(M3),E4%(M3) 160 DIM D1%(M4),D2$(M4),D3(M4) 170 DIM S1%(M5),S2$(M5),S3(M5) 190 ON ERROR GOTO 200 : DK = 1 : I = INSTR ("A","A") : GOTO 210 200 DK = 0 : RESUME 210 210 ON ERROR GOTO 0 220 CLS : PRINT : PRINT TAB( 10)"BUDGET MANAGEMENT - REPORT " : PRINT 230 IF DT<10100 THEN PRINT "ENTER TODAY'S DATE (MM/DD/YY)";:X%=1:GOSUB 900:DT=VAL(DT$):X%=0:GOTO 220 240 PRINT TAB( 15)"0) STOP<UNK! {000A}>" TAB( 15)"1) READ-IN MORE DATA<UNK! {000A}>" TAB( 15)"2) REPORT 260 PRINT : J = 3 : INPUT "ENTER YOUR CHOICE";J 270 IF J = 0 THEN E = 99 : GOSUB 5000 275 IF (J-1)*(J-2)<>0 GOTO 220 ELSE IF F=0 AND J=2 THEN GOSUB 9500 280 ON J GOSUB 9500,2000 : GOTO 220 290 C$ = LEFT$ (C$ + " " + STRING$ (30,"."),30) : RETURN 300 YN = - 1 : INPUT B$ : IF B$ = "" THEN B$ = C$ 305 C$ = LEFT$ (B$,1) : IF C$ = "Y" THEN YN = 1 : RETURN :ELSE IF C$ = "N" THEN YN = 0 : RETURN 310 PRINT "WAKE UP! PLEASE ANSWER YES(Y), OR NO(N)"; : IF F1 = 1 THEN RETURN : :ELSE 300 320 FOR DY = 1 TO 1000 : NEXT : RETURN 400 CLS : PRINT TAB( 18); : ON J GOTO 401,402 401 PRINT "DATA INPUT" : RETURN 402 PRINT "BUDGET REPORTER" : RETURN 450 LO = 1 : H% = K : II = 0 460 IF LO = H% AND NN < > ABS (A1%(LO)) RETURN 470 MD = INT ((LO + H%) / 2) : IF NN = ABS (A1%(MD))II = MD : RETURN 480 IF NN > ABS (A1%(MD)) THEN LO = MD + 1 : GOTO 460 : :ELSE H% = MD - 1 : GOTO 460 500 D1 = INT (D / 10000) 510 D2 = INT ((D - D1 * 10000) / 100) : D3 = D - 10000 * D1 - 100 * D2 : RETURN 550 D1 = 0 : GOTO 510 900 INPUT B$ 902 IF LEN (B$) < > 5 + 3 * X% THEN 930 :ELSE D1$ = LEFT$ (B$,2) : D2$ = MID$ (B$,4,2) : D3$ = RIGHT$ (B$,2) : IF VAL (D1$) < 1 OR VAL (D1$) > 12 THEN 930 905 IF VAL (D2$) < 1 OR VAL (D2$) > 31 THEN 930 :ELSE IF X% = 1 THEN IF VAL (D3$) < 0 THEN 930 910 DT$ = D1$ + D2$ : IF X% = 1 THEN DT$ = DT$ + D3$ : RETURN :ELSE RETURN 930 DT$ = " " : RETURN 950 PRINT USING "##/##"; INT (D / 100);D - 100 * INT (D / 100); : RETURN 960 PRINT USING "##/##/##"; INT (DT / 10000); INT ((DT - 10000 * INT (DT / 10000)) / 100);DT - 100 * INT (DT / 100); : RETURN 1000 A$ = INKEY$ : IF A$ < > "@" RETURN 1010 AB = 1 : PRINT : PRINT TAB( 5)"* ABORTED *" : PRINT : IF IO = 2 LPRINT "*** ABORTED ***" 1020 IF IO = 1 THEN GOSUB 1500 : RETURN :ELSE RETURN 1500 IF DK = 1 CMD "T" 1510 PRINT @980,"PRESS ENTER TO CONTINUE"; : INPUT A$ 1520 IF DK = 1 THEN CMD "R" : RETURN :ELSE RETURN 2000 GOSUB 400 : PRINT : PRINT TAB( 5)"REPORT WILL GO TO<UNK! {000A}><UNK! {000A}>" TAB( 15)"0) RETURN TO MENU<UNK! {000A}>" TAB( 15)"1) VIDEO DISPLAY<UNK! {000A}>" TAB( 15)"2) LINE PRINTER 2020 PRINT : PRINT "ENTER YOUR CHOICE"; : INPUT B$ : IO = VAL (B$) : IF IO = 0 OR B$ = "END" THEN RETURN 2025 IF (IO - 1) * (IO - 2) < > 0 THEN 2000 2030 IF IO = 2 PRINT : INPUT "READY LINE PRINTER, THEN PRESS ENTER";A$ 2040 GOSUB 400 : PRINT : PRINT TAB( 5)"TYPE OF REPORT IS<UNK! {000A}>" TAB( 15)"0) RETURN TO MENU<UNK! {000A}>" TAB( 15)"1) ACCOUNTS<UNK! {000A}>" TAB( 15)"2) OUTSTANDING CHECKS<UNK! {000A}>" TAB( 15)"3) CANCELLED CHECKS 2050 PP = 0 : PRINT TAB( 15)"4) CASH EXPENSES<UNK! {000A}>" TAB( 15)"5) DEPOSITS<UNK! {000A}>" TAB( 15)"6) SAVINGS 2080 PRINT : PRINT "ENTER YOUR CHOICE"; : INPUT B$ : TY = VAL (B$) : IF TY = 0 OR B$ = "END" THEN RETURN 2085 IF TY < 1 OR TY > 6 THEN 2040 2090 GOSUB 400 : PRINT : PRINT TAB( 5)"SEARCHING FOR 2100 PRINT TAB( 15)"0) RETURN TO MENU<UNK! {000A}>" TAB( 15)"1) CANCELLED DATE<UNK! {000A}>" TAB( 15)"2) CHECK NUMBER<UNK! {000A}>" TAB( 15)"3) EXPENSES ACCOUNT<UNK! {000A}>" TAB( 15)"4) DATE ENTERED 2110 PRINT TAB( 15)"5) DESCRIPTION<UNK! {000A}>" TAB( 15)"6) AMOUNT<UNK! {000A}>" TAB( 15)"7) ALL" : LK = 0 : PRINT 2130 PRINT "ENTER YOUR CHOICE"; : INPUT B$ : LK = VAL (B$) : IF B$ = "END" OR LK = 0 THEN RETURN 2135 IF LK < 1 OR LK > 7 THEN 2090 :ELSE IF TY = 3 THEN 2190 2140 IF TY = 1 AND (LK = 3 OR LK > 4) THEN 2190 2150 IF TY = 2 AND LK > 1 THEN 2190 2160 IF TY = 4 AND LK > 2 THEN 2190 2170 IF (TY = 5 OR TY = 6) AND LK > 3 THEN 2190 2180 PRINT TAB( 5)"* BAD REQUEST *" : GOSUB 320 : GOTO 2040 2190 PRINT : IF LK = 5 PRINT "ENTER DESCRIPTION"; TAB( 32); : INPUT R$ : GOTO 2300 2200 ON LK GOTO 2201,2202,2203,2201,2300,2206,2300 2201 PRINT "<LOW DATE>, <HIGH DATE>"; : GOTO 2210 2202 PRINT "<LOW CHECK#>, <HIGH CHECK#>"; : GOTO 2210 2203 PRINT "<LOW ACCOUNT#>, <HIGH ACCOUNT#>"; : GOTO 2210 2206 PRINT "<LOW AMOUNT>, <HIGH AMOUNT>"; 2210 PRINT TAB( 32); : IF LK < > 1 AND LK < > 4 THEN 2250 2220 INPUT B$,C$ : GOSUB 902 : IF DT$ = " " THEN 2270 :ELSE R1 = VAL (DT$) 2230 B$ = C$ : GOSUB 902 : IF DT$ = " " THEN 2270 :ELSE R2 = VAL (DT$) : GOTO 2260 2250 INPUT R1,R2 2260 IF R1 < = R2 THEN 2300 2270 PRINT TAB( 5)"* BAD RANGE *" : GOTO 2190 2300 IF IO = 1 THEN 2330 2305 IF PEEK (14312) < 128 THEN 2330 2320 PRINT : PRINT "LINE PRINTER NOT READY!!" : INPUT "TYPE 1 WHEN READY, OR 0 TO RETURN TO MENU";I : IF I = 0 THEN RETURN :ELSE 2305 2330 GOSUB 3000 2340 GOSUB 3500 : GOSUB 1000 : IF AB = 1 THEN 2040 2360 GOSUB 4500 : GOSUB 1000 : IF AB = 1 THEN 2040 2365 IF EOD = 1 AND PP = 0 THEN A$ = " * NO ENTRIES *" : IF IO = 1 THEN PRINT A$ : :ELSE LPRINT A$ 2370 IF EOD = 1 THEN 2410 2380 GOSUB 6000 : PP = 1 : GOSUB 1000 : IF AB = 1 THEN 2040 2390 IF IO = 1 THEN CNT = CNT + 1 : IF CNT > 14 THEN GOSUB 1500 : GOTO 2340 : :ELSE 2360 2400 IF PEEK (16425) > 62 THEN LPRINT CHR$ (12) : GOTO 2340 : :ELSE 2360 2410 IF IO = 1 GOSUB 1500 : GOTO 2040 2420 LPRINT CHR$ (12) : GOTO 2040 3000 POKE 16424,67 : POKE 16425,1 : PG = 0 : CNT = 0 : EOD = 0 : KK = 0 : AB = 0 3010 ON TY GOTO 3011,3012,3013,3014,3015,3016 3011 H$ = "ACCOUNTS" : GOTO 3020 3012 H$ = "OUTSTANDING CHECKS" : GOTO 3020 3013 H$ = "CANCELLED CHECKS" : GOTO 3020 3014 H$ = "CASH EXPENSES" : GOTO 3020 3015 H$ = "DEPOSITS" : GOTO 3020 3016 H$ = "SAVINGS" 3020 IF IO = 2 THEN 3100 3030 IF TY < > 1 THEN 3060 3040 T$ = " NO. NAME CURRENT BUDGET REMAINING 3050 F$ = " ##### % % #####.## #####.## #####.##-" : RETURN 3060 T$ = "DATE DESCRIPTION AMOUNT" : F$ = "##/## % % ######.##- 3070 IF TY > 1 AND TY < 4T$ = " NO. " + T$ : F$ = "###### " + F$ : :ELSE T$ = STRING$ (10," ") + T$ : F$ = STRING$ (10," ") + F$ 3080 IF TY > 1 AND TY < 5T$ = T$ + " EXP. ACCT" : F$ = F$ + " ######" 3090 IF TY = 3 THEN T$ = " NO. WRTN CAN DESCRIPTION AMOUNT EXP. ACCT" : F$ = "###### ##/## ##/## % % ######.## ######" : RETURN :ELSE RETURN 3100 IF TY < > 1 THEN 3130 3110 T$ = " ACCOUNT NAME CURRENT BUDGET PERCENT REMAINING 3120 F$ = " ##### % % ###,###.## ###,###.## #####.## ###,###.##-" : RETURN 3130 T$ = "DATE DESCRIPTION AMOUNT 3135 F$ = "##/## % % ###,###.##- 3140 IF TY > 1 AND TY < 4 THEN T$ = " NUMBER " + T$ : F$ = " ###### " + F$ : :ELSE T$ = STRING$ (15," ") + T$ : F$ = STRING$ (15," ") + F$ 3150 IF TY > 1 AND TY < 5T$ = T$ + " EXPENSE" : F$ = F$ + " ##### 3160 IF TY = 3 THEN T$ = T$ + " CANCELLED" : F$ = F$ + " ##/##" : RETURN :ELSE RETURN 3500 PG = PG + 1 : IF IO = 2 THEN 3530 3510 CLS : D = DT : GOSUB 500 : PRINT USING "BUDGET MANAGEMENT : % % PAGE ## DATE ##/##/##";H$;PG;D1;D2;D3 3520 GOSUB 1000 : IF AB = 1 THEN RETURN :ELSE PRINT T$ : CNT = 2 : RETURN 3530 GOSUB 3900 : LPRINT TAB( 40);"BUDGET MANAGEMENT REPORT" + STRING$ (25," "); : LPRINT USING "PAGE ##";PG 3540 LPRINT TAB( 40)"** "H$" REPORT **" : LPRINT TAB( 45)"DATE : "; : D = DT : GOSUB 500 : LPRINT USING "##/##/##";D1;D2;D3 3550 GOSUB 1000 : IF AB = 1 THEN RETURN :ELSE GOSUB 3910 : LPRINT T$ : FOR I = 1 TO LEN (T$) : IF MID$ (T$,I,1) = " " THEN LPRINT " "; : :ELSE LPRINT "="; 3560 NEXT : LPRINT " " : RETURN 3900 LPRINT STRING$ (110,"-") 3910 FOR DY = 1 TO 2 : LPRINT " " : NEXT : RETURN 4500 EOD = 0 : KK = KK + 1 : ON TY GOTO 4540,4600,4680,4690,4740,4780 4510 EOD = 1 : RETURN 4540 C$ = A2$(KK) : IF KK > K1 THEN 4510 :ELSE IF LK = 7 THEN 4580 :ELSE ON LK GOTO 4510,4510,4550,4510,4560,4570 4550 K = ABS (A1%(KK)) : IF K < INT (R1) OR K > INT (R2) THEN 4500 :ELSE 4580 4560 IF R$ < > C$ THEN 4500 :ELSE 4580 4570 R = CSNG (A3#(KK)) : IF R < R1 OR R > R2 THEN 4500 :ELSE 4580 4580 IF A4#(KK) = 0